'use strict';
/**
 * author：小小游 --- allen
 * date：2018.02.04
 * lastUpdateDate：2018.02.04
 * description：Iterator遍历器与for-of循环的配合使用
 */
// 来看看怎么玩耍Iterator遍历器与for-of循环
let arr = ['a', 'b', 'c'];

for ( let key of arr ) console.log(key);

// 数组有一个Symbol.iterator的属性
console.log(arr[Symbol.iterator]);

/**
 * 数组有一个Symbol.iterator的属性，当我们调用它arr[Symbol.iterator]()，
 * 它会返回一个Iterator的指针对象，如下所示：
 * 那么它调用next方法会返回两个值，格式为：{ value: 'a', done: false }
 * value表示当前正在循环遍历的值，done为false表示循环还没结束，就得继续调用
 * next()方法，直到{ value: undefined, done: true }表示值已经遍历完毕
 */
let iterator = arr[Symbol.iterator]();
console.log(iterator.next());
console.log(iterator.next());
console.log(iterator.next());
console.log(iterator.next());
